【RDMA】RDMA信息状态查询

您所在的位置:网站首页 redhat 查看网卡流量 【RDMA】RDMA信息状态查询

【RDMA】RDMA信息状态查询

2024-07-13 13:40| 来源: 网络整理| 查看: 265

目录

RDMA 常用命令

0、使用命令例子

1、常规 IB 监视命令

2、常规 IB 性能测试命令

3、光纤网络诊断工具

4、查询并报告非零 IB 端口计数器

5、其常用指令

新华三 IB 网卡相关

1 概述

2 配置准备

2.1  IB网卡驱动下载(IB1040i)

2.2  IB网卡驱动安装

2.3  网络配置

2.4  MFT工具下载

2.5  MFT工具安装

2.6  IB设备管理

3 IB网卡常用命令(IB1040i)

3.1  查看网卡端口状态

3.2  查看网卡对应端口名称及状态

3.3  查看集群中所有的IB网卡设备

3.4  查看网卡端口的详细信息

3.5  查看服务器下网卡端口的GUID号

3.6  查看当前SM的运行的guid号

3.7  启用mst服务功能

3.8  IB设备加入集群

3.9  查看当前集群内的所有设备

3.10  IB交换模块和IB网卡设备信息查询

3.11  IB交换模块和IB网卡固件升级

3.12  端口速率及状态查询

3.13  设置IB网卡的up/down

4 IB交换模块常用命令(BX1020B)

4.1  IB交换模块端口查询

4.2  IB交换模块和IB网卡设备信息查询

4.3  IB交换模块和IB网卡固件升级

4.4  查看集群下各IB交换模块对应的设备

4.5  查看在位IB交换模块

4.6  设置IB交换模块端口up/down

4.7  检查当前环境下光纤物理链路的健康情况

4.8  IB交换模块日志收集

5 常见问题处理

5.1  IB网卡常见问题

5.1.1  IB网卡端口不可见

5.1.2  IB网口不通或端口为初始化状态

5.1.3  IB网卡端口速率协商异常

5.1.4  IB网卡查询系统中组网设备的相关命令执行失败,如ibv_devinfo 执行报错,failed to get IB deviceslist。

5.2  IB交换模块常见问题

随时更新,源文地址:https://blog.csdn.net/bandaoyu/article/details/115798693

RDMA 常用命令

HCA:在Infiniband/RoCE规范中,将RDMA网卡称为HCA,全称为Host Channel Adapter。(https://blog.csdn.net/bandaoyu/article/details/125234262?spm=1001.2014.3001.5501)

ibv_devices,ibv_devinfo libibverbs-utils.rpm包里的工具,用于显示本机上的RDMA设备 

RDMA命令 命令 操作 备注 ibv_devinfo 显示device信息(简略) ibv_devinfo -v 显示device信息(详细) ibv_devinfo -d  mlx4_0     输出指定设备的主要信息 ibv_devinfo -d  mlx4_0 -v  输出指定设备的详细信息 ibv_devices 列出device ibvdev2netdev 显示device和网口的对应关系 mellonx的命令,intel的需要阅读用户说明自己根据他们的脚本编写类似的命令 show_gids 显示gid列表 mellonx的命令,intel的需要阅读用户说明自己根据他们的脚本编写类似的命令 show_drop 查看端口包丢弃情况 mellonx的命令,intel的需要阅读用户说明自己根据他们的脚本编写类似的命令 ibstatus 查看核更改网卡工作模式:Ethernet 或infiniband模式 ibv_asyncwatch 监视 InfiniBand 异步事件 iblinkinfo.pl 或 iblinkinfo 显示光纤网络中所有链路的链路信息 sminfo 用法sminfo –help; 查询 IB SMInfo 属性 ibstat 或 ibsysstat 查询 InfiniBand 设备状态或 IB 地址上的系统状态 hca_self_test.ofed RDMA网卡自测 查看网卡状态 mellonx /etc/infiniband/info Mellanox OFED 安装的信息 mellonx cat /etc/infiniband/openib.conf 看自动加载的模块列表 mellonx lspci grep Mellanox 检查Mellanox网卡是否安装和版本 查询ice和固件版本 ethtool -i ens21f0 driver: ice version: 5.18.1300-0.el9.x86_64 firmware-version: 4.10 0x8000c54c 1.3106.0 expansion-rom-version: 查看irdma版本、ice版本 modinfo irdma modinfo ice 查看rdma-core版本 rpm -qa|grep rdma-core 查看当前工作模式:sudo /sbin/connectx_port_config -s    (mellonx) 验证RDMA内核模块是否已加载:/etc/init.d/openibd status LINUX 查看安装的网卡:  lspci | grep -i eth  查看加载了哪些模块: lsmod ibstatCA 'mlx4_0'    CA type: MT4099

0、使用命令例子

显示GID show_gids

显示当前设备安装的OFED包的信息:驱动、工具等 ofed_info

1、检查网卡是否安装:

检查Mellanox网卡是否安装和版本 [root@rdma61 ~]#  lspci | grep Mellanox 0000:18:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5] 0000:3b:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]  2、查看系统里所有的网卡和工作状态: [root@rdma63 tcpdump]# ip a

[root@rdma63 tcpdump]# ibv_devices     device                 node GUID     ------              ----------------     mlx5_1              98039b03009a4296     mlx5_0              98039b03009a2b3a

[root@rdma63 tcpdump]# ibv_devinfo 

[root@rdma63 tcpdump]# ibv_devinfo mlx5_0 hca_id: mlx5_0         transport:                      InfiniBand (0)         fw_ver:                         16.29.1016         node_guid:                      9803:9b03:009a:2b3a         sys_image_guid:                 9803:9b03:009a:2b3a         vendor_id:                      0x02c9         vendor_part_id:                 4119         hw_ver:                         0x0         board_id:                       MT_0000000010         phys_port_cnt:                  1         Device ports:                 port:   1                         state:                  PORT_ACTIVE (4)                         max_mtu:                4096 (5)                         active_mtu:             1024 (3)                         sm_lid:                 0                         port_lid:               0                         port_lmc:               0x00                         link_layer:             Ethernet

如果要显示全部信息:ibv_devinfo  -v

查看网口映射关系

#ibdev2netdev 命令查看网口映射关系。

[root@rdma64 ibdump-master]# ibdev2netdev mlx5_0 port 1 ==> eth18-0 (Up) mlx5_1 port 1 ==> ib3b-0 (Up)  

原文;FAQ-IB常用命令- 华为

查看HCA端口

hca_self_test.ofed

sudo /etc/init.d/openibd restart sudo /etc/init.d/opensmd restart

一、诊断工具--翻译中

摘自《Mellanox_OFED_Linux_User_Manual_v4_1》

本章介绍的诊断工具提供了fabric中IB设备的连接和状态调试方法。

工具描述ibdump

测试流入和流出Mellanox Technologies ConnectX系列适配器InfiniBand端口的InfiniBand通信。

请注意以下几点:

虚拟功能(SR-IOV)不支持ibdump。所有HCA均支持Infiniband流量嗅探。仅在Connect-X3和Connect-X3 Pro卡上支持以太网和RoCE嗅探。

dump出来的文件,可以通过Wireshark工具加载进行图形流量分析。

以下描述了本地HCA(适配器)嗅探的工作流程:

1.运行ibdump 并给定运行选项2.运行进行IB通信的应用程序3.停止ibdump(CTRL-C)或等待数据缓冲区填充(在--mem-mode中)4.打开Wireshark并加载生成的文件。要下载适用于Linux或Windows环境的Wireshark,请访问www.wireshark.org。

注意:尽管ibdump是Linux应用程序,但是可以在任一操作系统上分析生成的.pcap文件。 [mlx4]为了使ibdump与RoCE一起使用,必须启用Flow Steering。

启用步骤:

1.将以下内容添加到/etc/modprobe.d/mlnx.conf文件:options mlx4_core log_num_mgm_entry_size = -1

2.重新启动驱动程序。

注意:如果将HCA的端口中有一个配置为InfiniBand,则ibdump要求IPoIB DMFS是使能的。有关更多信息,请参阅第3.1.12.1节,启用/禁用流向,第103页。有关更多信息,请参阅工具的手册页。

dump_fts

为子网的ibnetdiscover扫描中发现的每个交换机转储表。dump文件格式与使用-R file -U /path/to/dump-file语法加载到OpenSM兼容。

Dumps tables for every switch found in an ibnetdiscover scan of the subnet. The dump file format is compatible with loading into OpenSM using the -R file -U /path/to/dump-file syntax. For further information, please refer to the tool’s man page.

ibaddr

默认情况下,可以用来显示指定端口或本地端口的LID和GID地址。这个实用程序可以用作简单的地址解析器。 要了解更多信息,请参考该工具的手册页。

Can be used to show the LID and GID addresses of the specified port or the local port by default. This utility can be used as simple address resolver. For further information, please refer to the tool’s man page.

ib_send_bw

测试两台机器之间的SEND带宽

一个充当服务器,另一个充当客户端。服务器从客户端接收数据包,它们都计算操作的吞吐量。该测试支持双向功能(双向功能可同时发送和接收),mtu大小的更改,tx大小,迭代次数,消息大小等。使用“ -a”可提供所有消息大小的结果。 有关更多信息,请参阅该工具的手册页。

Calculates the BW of SEND between a pair of machines. One acts as a server and the other as a client. The server receive packets from the client and they both calculate the throughput of the operation. The test supports features such as Bidirectional, on which they both send and receive at the same time, change of mtu size, tx size, number of iteration, message size and more. Using the "-a" provides results for all message sizes. For further information, please refer to the tool’s man page.

rpingsoftRoCE连通性测试 服务端IP为:192.168.1.10,在服务端开启RDMA rping -s -a 192.168.1.10 -v -C 10 出现的等待窗口, 客户端IP为:192.168.1.34,按照同样的方式安装RDMA(因为rping的命令需要使用以上软件的安装才能生成) rping -c -a 192.168.1.10 -v -C 10  

更换网卡工作模式

有些网卡,当你安装好驱动后,通过 ibstatus 命令,会出现下面的情况:

可以看到,该网卡现在处于 Ethernet 的工作模式,如果想要切换成infiniband模式,参考如下链接:

https://community.mellanox.com/s/article/howto-change-port-type-in-mellanox-connectx-3-adapter

查看当前工作模式:

sudo /sbin/connectx_port_config -s

输入以下命令切换工作模式:

sudo /sbin/connectx_port_config

如果提示如图,说明不支持infiniband模式,否则,就切换成功了,再次使用一下命令可以验证:

原文链接:https://blog.csdn.net/bandaoyu/article/details/115906185

1、常规 IB 监视命令

ibv_asyncwatch 监视 InfiniBand 异步事件 ibv_devices or ibv_devinfo 列举 InfiniBand 设备或设备信息 ibv_rc_pingpong、ibv_srq_pingpong 或 ibv_ud_pingpong 使用 RC 连接、SRQ 或 UD 连接测试节点之间的连通性 mckey 测试 RDMA CM 多播设置和简单数据传输 rping 测试 RDMA CM 连接并尝试 RDMA ping ucmatose 测试 RDMA CM 连接并尝试简单 ping udaddy 测试 RDMA CM 数据报设置并尝试简单 ping  

2、常规 IB 性能测试命令

RDMA通信测试工具|perftest_https://blog.csdn.net/bandaoyu/article/details/115798045

rdma_client 或rdma_server 或rdma_xclient或 rdma_xserver 测试 RDMA 写处理确定流带宽或等待时间 ib_read_bw 或 ib_read_lat 测试 RDMA 读处理确定带宽或等待时间 ib_send_bw 或 ib_send_lat 测试 RDMA 发送处理确定带宽或等待时间 ib_write_bw 或 ib_write_bw_postlist 测试 RDMA 写处理,确定一次显示一个 I/O 请求的带宽或显示一系列 I/O 请求的发布列表带宽 ib_write_lat 测试 RDMA 写处理确定等待时间 ib_clock_test 测试系统时钟准确性 qperf 测量插槽与 RDMA 性能 RDS 监视与测试工具 rds-info 显示 RDS 内核模块信息 rds-ping 确定基于 RDS 的远程节点是否可访问 rds-stress 在基于 RDS 插槽的进程间发送消息

3、光纤网络诊断工具

iblinkinfo.pl 或 iblinkinfo 显示光纤网络中所有链路的链路信息 sminfo 查询 IB SMInfo 属性 ibstat 或 ibsysstat 查询 InfiniBand 设备状态或 IB 地址上的系统状态 perfquery or saquery 查询 IB 端口计数器或 sIB 子网管理属性 ibdiagnet 执行整个光纤网络诊断检查 ibcheckerrors 或 ibcheckerrs 验证 IB 端口(或节点)或 IB 子网并报告错误 ibaddr 查询 InfiniBand 的一个地址或多个地址 ibnetdiscover 搜索远程 InfiniBand 拓扑 ibping 验证 IB 节点之间的连通性 ibportstate 查询 IB 端口的物理端口状态和链接速度 ibroute 显示 InfiniBand 交换机转发表 ibtracert 跟踪 IB 路径 smpquery 或 smpdump 查询或转储 IB 子网管理属性 ibchecknet, ibchecknode, 或 ibcheckport 验证 IB 子网、节点或端口并报告错误 ibcheckportstate, ibcheckportwidth, ibcheckstate, or ibcheckwidth 验证已链接但不活动的 IB 端口、面向 1x (2.0 Gbps) 链路带宽的端口、IB 子网中已链接但不活动的端口或 IB 子网中的 lx 链路 ibclearcounters or ibclearerrors 对 IB 子网中的端口计数器或错误计数器进行清零 ibdatacounters or ibdatacounts 查询 IB 子网中的数据计数器或 IB 端口数据计数器 ibdiscover.pl 注释并比较 IB 拓扑 ibcheckerrors 或 ibcheckerrs 验证 IB 端口(或节点)或 IB 子网并报告错误 ibchecknet, ibchecknode, 或 ibcheckport 验证 IB 子网、节点或端口并报告错误 ibhosts 显示拓扑中的 IB 主机节点 ibnodes 显示拓扑中的 IB 节点 ibprintca.pl 显示来自 ibnetdiscover 输出的特定 CA 或 CA 列表 ibprintrt.pl 显示来自 ibnetdiscover 输出的特定路由器或路由器列表 ibprintswitch.pl 显示来自 ibnetdiscover 输出的特定交换机或交换机列表 ibrouters 显示拓扑中的 IB 路由器节点 ibstatus 查询 IB 设备的基本状态 ibswitches 显示拓扑中的 IB 交换机节点 ibswportwatch.pl ibqueryerrors.pl 轮询特定交换机或端口上的计数器并报告更改信息速率  

4、查询并报告非零 IB 端口计数器

ibprintswitch.pl 显示来自 ibnetdiscover 输出的特定交换机或交换机列表 set_nodedesc.sh 设置或显示针对 IB 主机控制器适配器 (HCA) 的节点描述字符串 dump2psl.pl 转储基于 opensm 输出文件的 PSL 文件,该输出文件用于信用循环检查 dump2slvl.pl 转储基于 opensm 输出文件的 SLVL 文件,该输出文件用于信用循环检查 ibis 针对 IB 管理带内服务的扩展 TCL shell

5、其常用指令

ibv_srq_pingpong Command - Sun Datacenter InfiniBand Switch 648 Topic Set

更多命令:

用户命令 - 手册页部分 1: 用户命令

=================================================================

查看映射关系 mlnx_qos -i eth2   (mellonx)

设置用L3做流控 mlnx_qos -i eth2 --trust=dscp  (mellonx)

修改dscp到priority 映射 dscp 30 映射到修改dscp到priority 6 # mlnx_qos -i eth2 --dscp2prio set,30,6    (mellonx)

使能PFC # mlnx_qos -i --pfc 0,0,0,1,0,0,0,0   

修改tc和prio的映射(默认除了tc0对应prio1,tc对应prio0,其他的都是对应的,如tc2-prio2,tc3-prio3,tc4-prio4……) mlnx_qos -i ib3b-0 -p 0,1,2,3,4,5,6,7

端口各优先级的收发计数 #测量该接口发送和接收的 Xon 和 Xoff(传输开启和关闭)帧的数量: # watch -n 1 "ethtool -S eth1 | grep prio"

(intel  请注意,Rx 计数器全为 0。当适配器通过交换机连接时,rx_priority_* 计数器可能为 0,表明适配器尚未从交换机收到任何暂停帧。根据网络中的压力水平,如果交换机有足够的缓冲来跟上主机需求,这是可以接受的。但是,对于高压力流量(例如更大规模的 HPC 应用程序),交换机通常会向主机发送暂停帧。通常,预计会同时看到 tx 和 rx_priority 计数器。 请注意,某些 Tx 计数器具有相同的值。在 800 系列 QoS 实施中,如果为traffic class中的任何priority启用 PFC,则该traffic class中的所有priority都会获得暂停帧。这意味着同一 TC 中所有priority的计数器都会一致递增,而不管导致 PFC 触发的特定单个priority如何。如果所有priority都映射到同一个 TC,它们都会一致增加。)

查看GID

show_gids          (mellonx;intel自己也写同样的脚本,脚本内容见末尾) show_gids mlx5_5   (mellonx)查看设备可用端口, gid_index, rmda版本

查看端口丢弃

show_drop        (mellonx;intel自己也写同样的脚本,脚本内容见末尾)

弃包统计 ethtool -S enp175s0f0 | grep drop

查看device ibdev2netdev     (mellonx;intel自己也写同样的脚本,脚本内容见末尾)

ibdev2netdev –v  (mellonx)

验证 InfiniBand 链接是否已启动

hca_self_test.ofed   (mellonx)

Mellanox OFED 安装的信息

/etc/infiniband/info

看自动加载的模块列表 /etc/infiniband/openib.conf

检查Mellanox网卡是否安装和版本 [root@rdma61 ~]#  lspci | grep Mellanox

查看系统里所有的网卡和工作状态: [root@rdma63 tcpdump]# ip a

[root@rdma63 tcpdump]# ibv_devices     device                 node GUID     ------              ----------------     mlx5_1              98039b03009a4296     mlx5_0              98039b03009a2b3a

[root@rdma63 tcpdump]# ibv_devinfo 

[root@rdma63 tcpdump]# ibv_devinfo mlx5_0

2.配置H3C交换机

a)    配置优先级信任模式为DSCP:

例如: [H3C]sys [H3C]interface HundredGigE1/0/6 [H3C-HundredGigE1/0/6] qos trust  dscp

    *配置信任模式为DSCP,交换机才会使用 报文自带的DSCP做映射。 设置信任模式为DSCP,则进入交换机的报文优先级映射会涉及到3个表: 进-->出 映射, dscp-dot1p    #入端口报文为dscp会被交换机映射到lp队列 dscp-dp       #入端口报文为dscp会被交换机映射到dp队列 dscp-dscp     #入端口报文的dscp会被交换机改为dscp转发 (优先级可分为两类:报文携带优先级和设备调度优先级。 设备调度优先级是指报文在设备内转发时所使用的优先级,只对当前设备自身有效。 设备调度优先 级包括以下几种:  • 本地优先级(LP):设备为报文分配的一种具有本地意义的优先级,每个本地优先级对应一 个队列,本地优先级值越大的报文,进入的队列优先级越高,从而能够获得优先的调度。 • 丢弃优先级(DP):在进行报文丢弃时参考的参数,丢弃优先级值越大的报文越被优先丢弃。)

b)    配置PFC功能的开启模式 例如: [H3C]sys [H3C]interface HundredGigE1/0/6 [H3C-HundredGigE1/0/6] priority-flow-control enable

2.2.2.5 显示和维护(H3C交换机)

1.    显示指定优先级映射表配置情况  display qos map-table  dot1p-dp | dot1p-exp | dot1p-lp | dscp-dot1p | dscp-dp | dscp-dscp | exp-dot1p | exp-dp ]  如:display qos map-table dscp-dscp

2.    显示接口优先级信任模式信息(sys视图)  display qos trust interface [ interface-type interface-number ] 如: display qos trust interface HundredGigE1/0/1

3.    显示端口简单信息 display interface brief 4.    显示端 口在该间隔时间内统计的报文信息 display interface 5.    显示Qos trust设置 display qos trust int 6.    显示接口的PFC信息 display priority-flow-control interface 显示全部 display priority-flow-control interface [ interface-type [ interface-number ] ] 显示某个

Tos============= --tos=  Set to RDMA-CM QPs. available only with -R flag. values 0-256 (default off)

ibdump -d mlx5_0 -i 1  -w        sniffer.acp     #抓包 ib_send_bw -d mlx5_0     --rdma_cm               #服务端 ib_send_bw 192.169.31.54 --rdma_cm  --tos=12 –R  #客户端1100

intel  show_gids,show_drop,ibdev2netdev脚本

========================== Intel show_gids ========================== #!/bin/bash function show_gid() {         for device in ` ls /sys/class/infiniband/` #注意此处这是两个反引号,表示运行系统命令         {           echo "****************"           echo "Device:"${device}           for port in ` ls /sys/class/infiniband/${device}/ports/`             {                   echo "IB port:"${port}                    for gid in `ls /sys/class/infiniband/${device}/ports/${port}/gids`                    {                GID=`cat /sys/class/infiniband/${device}/ports/${port}/gids/${gid}` #在此处处理文件即可                                 if [[ $GID == *0000:0000:0000:0000:0000:0000:0000:0000* ]]                then                : #do nothing                #echo "包含"                else                #echo "不包含"                     echo "GID"${gid}":"$GID                fi                        }            }         } } show_gid ========================== Intel show_drop  ========================== #!/bin/bash function show_drop() {         for device in `ls /sys/class/infiniband/`         {           echo ""           echo -e  "\e[1;32m${device}\e[0m"            cd  /sys/class/infiniband/${device}/hw_counters                     for f in *Discards           {              echo -n "$f: "              cat "$f"           }         } }   show_drop *intel官方提供的脚本: # cd /sys/class/infiniband/irdma-enp175s0f0/hw_counters   # for f in *Discards; do echo -n "$f: "; cat "$f"; done   ========================== Inetl ibdev2netdev ========================== #!/bin/bash echo "--------------------------------------" echo "script locate:/usr/bin/ibvdev2netdev" echo "Author:liangchaoxi" echo "***************************************" ibv_devices|awk '{system("echo "$1"\"-->\"`ls /sys/class/infiniband/"$1"/device/net`")}' |& grep -Ev '/device/net|device|-------->' echo "***************************************" ip route echo "--------------------------------------"

查看网卡驱动

Linux如何查看网卡驱动以及版本号:https://baijiahao.baidu.com/s?id=1731907430451363273&wfr=spider&for=pc  

新华三 IB 网卡相关

01-正文-新华三集团-H3C

1 概述

2 配置准备

2.1 IB网卡驱动下载(IB1040i)

2.2 IB网卡驱动安装

2.3 网络配置

2.4 MFT工具下载

2.5 MFT工具安装

2.6 IB设备管理

3 IB网卡常用命令(IB1040i)

3.1 查看网卡端口状态

3.2 查看网卡对应端口名称及状态

3.3 查看集群中所有的IB网卡设备

3.4 查看网卡端口的详细信息

3.5 查看服务器下网卡端口的GUID号

3.6 查看当前SM的运行的guid号

3.7 启用mst服务功能

3.8 IB设备加入集群

3.9 查看当前集群内的所有设备

3.10 IB交换模块和IB网卡设备信息查询

3.11 IB交换模块和IB网卡固件升级

3.12 端口速率及状态查询

3.13 设置IB网卡的up/down

4 IB交换模块常用命令(BX1020B)

4.1 IB交换模块端口查询

4.2 IB交换模块和IB网卡设备信息查询

4.3 IB交换模块和IB网卡固件升级

4.4 查看集群下各IB交换模块对应的设备

4.5 查看在位IB交换模块

4.6 设置IB交换模块端口up/down

4.7 检查当前环境下光纤物理链路的健康情况

4.8 IB交换模块日志收集

5 常见问题处理

5.1 IB网卡常见问题

5.1.1 IB网卡端口不可见

5.1.2 IB网口不通或端口为初始化状态

5.1.3 IB网卡端口速率协商异常

5.1.4 IB网卡查询系统中组网设备的相关命令执行失败,如ibv_devinfo 执行报错,failed to get IB deviceslist。

5.2 IB交换模块常见问题

 

  1 概述

本文主要介绍H3C Uniserver B16000刀箱内IB交换模块(BX1020B)与IB网卡(IB1040i)的配置方法及常见问题处理。

由于IB交换模块没有管理串口,管理员需要IB网卡配合才能管理IB交换模块。因此对于IB交换模块的管理操作,需要先将IB交换模块和带有IB网卡的刀片服务器安装到刀箱中,然后在刀片服务器的Linux操作系统下进行(本文以服务器安装Redhat 7.5系统为例)。集群(包含IB网卡和IB交换模块在内的整个刀箱环境)中只需要有一台满足要求的刀片服务器,即可管理所有IB交换模块。

刀箱IB配置是基于IB集群化的概念,通过启用SM(子网管理器,后面章节有详细描述),来统一管理当前集群下的所有IB设备(本文指IB交换模块和IB网卡)。IB集群分为物理层和逻辑层,刀箱内IB交换模块与IB网卡均在位连接时,物理层为linkup状态,只有启用SM,逻辑层链路才能正常使用。

 

  2 配置准备

本章节主要介绍了配置子网管理器的方法,子网管理器是将整个IB集群的设备进行统一管理,运行在刀箱内的一台安装了IB网卡的刀片服务器上,在配置子网管理器之前,      需要在当前的服务器上对IB网卡进行驱动升级,及MFT工具包进行安装,MFT是一套固件管理工具,用于生产标准化或定制化Mellanox固件镜像、查询固件信息、烧录固件镜像。为了保证子网管理器正常使用,需要确认IB交换模块和IB网卡正常物理连接。根据业务需求可给IB网卡端口设置IP地址。

2.1  IB网卡驱动下载(IB1040i)

请联系技术支持,根据版本配套表下载IB网卡的驱动安装包。

说明

IB网卡的驱动安装包的文件名请以实际情况为准,本文中以“MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.5-x86_64.tgz”举例。

 

2.2  IB网卡驱动安装

(1)     使用ftp或者SSH工具将驱动包上传到节点服务器的/home目录下。

 

(2)     在当前/home路径下对IB网卡进行解压:

参考命令:tar –xvf MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.5-x86_64.tgz

 

(3)     进入MLNX_OFED_LINUX-4.7-1.0.0.1-rhel7.5-x86_64/目录下,执行命令:./mlnxofedinstall,进行IB网卡的驱动安装。

 

(4)     驱动安装成功后,重启服务器。

2.3  网络配置

安装完成IB网卡驱动并重启,需要为IB端口配置一个IP地址,配置方法和以太网端口的IP配置方法一样,步骤如下:

(1)     在IB网卡所在的刀片服务器的/etc/sysconfig/network-scripts/下修改配置文件ifcfg-ib0,配置IP地址和子网掩码。

 

(2)     配置完成后重启网络服务使IP生效,执行命令:systemctl restart network.service

 

(3)     配置子网管理器

IB网络使用子网管理器(Subnet Manager,下文简称SM)管理网络路由,SM可以运行在刀片服务器或者具有管理功能的IB交换模块上(本文介绍运行在服务器节点上)。SM启用时,会统一将集群中的设备根据GUID(globally unique identifier,全局唯一标识符)进行LID号(Local Identifier,端口标识符)分配,LID号是唯一的,无特殊情况下不进行回收。

MLNX_OFED(官方驱动名称)驱动中集成了子网管理器SM,安装MLNX_OFED驱动后, SM已默认安装。SM可以运行在一台或者多台服务器节点上,但同时只有一台处于Active状态,为了确保当前集群的正常运行。当主的SM处于down的状态,备的SM会接替主的SM。主备切换间隙暂不会影响业务,但当SM未启用时,集群内的所有的IB网卡端口的逻辑层会处于初始化状态,会影响业务运行。

(4)     启用子网管理器

在服务器节点上开启子网管理功能

·     方法一:执行命令:/etc/init.d/opensmd start

 

此方法会默认将当前服务器上第一个IB网卡Active的端口作为SM管理口,如果集群中需要备的SM,可以在集群中其他服务器中执行/etc/init.d/opensm start。

·     方法二:执行opensm –B –g  -p 命令为IB网卡端口设置优先级,优先级最高且处于Active状态的端口将被选择为主SM,其余端口为备SM。其中表示IB网卡的GUID号,可以通过ibstat命令查询;表示SM的优先级,取值范围为0~14,数值越大优先级越高。

 

2.4  MFT工具下载

MFT是一套固件管理工具,用于生产标准化或定制化Mellanox固件镜像、查询固件信息、烧录固件镜像。请自行上网获取MFT工具。

说明

MFT工具包的文件名请以实际情况为准,本文中以“mft-4.13.0-104-x86_64-rpm.tgz”举例。

 

2.5  MFT工具安装

(1)     通过FTP或者SSH工具将MFT工具包上传到刀片服务器的/home目录下

 

(2)     执行命令:tar -xvf mft-4.13.0-104-x86_64-rpm.tgz解压IB通用的MFT工具包。

 

(3)     进入/home/ mft-4.13.0-104-x86_64-rpm /,执行命令:./install.sh --oem,安装MFT工具

 

(4)     MFT工具安装成功后,执行命令:mst start,确认工具已安装成功,并且能运行。

 

2.6  IB设备管理

子网管理器设置成功后,就可以对当前集群下的所有的IB设备进行统一管理。

(1)     节点服务器启动mst服务,执行命令:mst start。如已执行请跳过。

 

(2)     自动将集群中的所有IB设备加入子网管理器中统一管理,执行命令:mst ib add

(3)     查看集群中添加的IB设备,命令mst status –v(截图中的Inband devices表示已添加的设备)

 

(4)     设备加入集群中后可以对当前的设备进行升级、查询,具体使用方法可以参考3.11  IB交换模块和IB网卡固件升级。

 

  3 IB网卡常用命令(IB1040i) 3.1  查看网卡端口状态

本命令用于查看IB网卡的基本信息。

【命令】

ibstat

【举例】

 

【信息说明】

CA ‘mlx5_0’:网卡端口名称,用于指定端口打流时多带的参数。

Firmware version:当前网卡的固件版本。

State:逻辑层网卡连接状态。

Physical state:物理层网卡连接状态。

Rate:速率。

Base lid:SM分配的LID号。

SM lid:当前SM的LID号。

Port GUID:网卡每个端口的GUID号,可用来指定SM。

3.2  查看网卡对应端口名称及状态

本命令用于查看当前系统下网卡名称与系统下ib端口名称的对应关系及状态。

【命令】

ibdev2netdev

ibdev2netdev -v

【举例】

 

3.3  查看集群中所有的IB网卡设备

本命令用于将集群中所有的IB网卡设备进行罗列。

【命令】

ibhosts

【举例】

 

【信息说明】

0xe41d2d0030570ce6 :IB网卡的端口GUID号。

wlp-node8 HCA-1:服务器系统下IB网卡的名称。

3.4  查看网卡端口的详细信息

本命令用于查看网卡端口的详细信息,与ibstat功能类似,多了PSID(board_id)信息。

【命令】

ibv_devinfo

【举例】

 

【信息说明】

board_id:PSID厂家信息编码。

3.5  查看服务器下网卡端口的GUID号

本命令用于查看服务器系统下网卡的Node GUID号。

【命令】

ibv_devices

【举例】

 

3.6  查看当前SM的运行的guid号

本命令用于查询当前集群下SM的GUID号,表明当前SM设备已经被指定。

【命令】

sminfo

【举例】

 

3.7  启用mst服务功能

本命令用于集群内开始mst服务,该命令用于启动注册访问程序,列出可用mst设备。

【命令】

mst start

【举例】

 

3.8  IB设备加入集群

本命令用于将集群中所有的IB设备加入到当前的集群中,进行统一管理。

【命令】

mst ib add

【举例】

 

【信息说明】

Added 6 ib-band devices:当前集群中可以加入的设备数量(包含交换IB交换模块和IB网卡)。

 

3.9  查看当前集群内的所有设备

本命令用于查看集群中所有IB设备。

【命令】

mst status –v

【举例】

 

【信息说明】

DEVICE_TYPE:IB网卡设备的型号、设备全称、PCI号、相关联的CPU。

Inband devices:此处查看设备分配的lid号为16进制,需要转化成十进制。

3.10  IB交换模块和IB网卡设备信息查询

本命令用于对当前集群下的设备进行管理使用,查询网卡或者IB交换模块的基本信息。

【命令】

flint -d  query

【参数说明】

:表示IB交换模块和IB网卡名称,该名称可以通过mst status –v命令查询,如/dev/mst/SW_MT54000_Quantum_Mellanox_Technologies_lid-0x0001。IB交换模块名称以SW开头,IB网卡以网卡名称开头,例如mt4119_pciconf0。

【举例】

·     IB交换模块固件版本查询举例:

 

·     IB网卡固件版本查询举例:

 

3.11  IB交换模块和IB网卡固件升级

本命令用于IB网卡和IB交换模块的固件升级。

【命令】

flint -d  -i < fw version> burn。

【参数说明】

:表示IB交换模块和IB网卡名称,该名称可以通过mst status –v命令查询,如/dev/mst/SW_MT54000_Quantum_Mellanox_Technologies_lid-0x0001。IB交换模块名称以SW开头,IB网卡以网卡名称开头,例如mt4119_pciconf0。

< fw version>:表示固件版本。

详细参数可以输入flint --help进行参考。

【举例】

·     IB交换模块固件版本升级,升级完成后IB交换模块需要断电重启生效。

·     IB网卡固件版本升级,升级完成后请重启服务器生效。

 

3.12  端口速率及状态查询

本命令用于查询IB交换模块内部及外部口端口状态以及IB网卡本身的端口状态。

【命令】

查看IB网卡的端口状态:

mlxlink -d 

查看IB交换模块上端口状态:

mlxlink -d  -port 

【参数说明】

:表示IB交换模块和IB网卡名称,该名称可以通过mst status –v命令查询,如/dev/mst/SW_MT54000_Quantum_Mellanox_Technologies_lid-0x0001。IB交换模块名称以SW开头,IB网卡以网卡名称开头,例如mt4119_pciconf0。

:表示端口号,取值1~41。

详细参数可以输入mlxlink --help进行参考。

【举例】

·     查询当前IB网卡的端口状态及端口速率。

 

·     查看IB交换模块33号端口状态及速率。

 

【信息说明】

Speed:表示当前网卡支持的最大带宽速率。

Enabled Link Speed:表示当前网卡支持的协商速率。

Support Cable Speed:表示与IB交换模块连接的线缆支持的协商速率(红色字体表示为内部连接无cable)。

3.13  设置IB网卡的up/down

本命令用于设置IB网卡的端口的up/down,仅适用于当前服务器下的IB网卡。

【命令】

mlxlink -d  -a 

【参数说明】

:表示IB网卡名称,该名称可以通过mst status –v命令查询,如mt4119_pciconf0。

:端口的up/down状态,取值为:UP或DN,DN表示down。

【举例】

·     设置IB网卡端口为down状态。

 

·     设置IB网卡端口为UP状态。

 

  4 IB交换模块常用命令(BX1020B) 4.1  IB交换模块端口查询

本命令用于查看IB交换模块的所有端口的连接状态。此命令会将集群内所有的IB交换模块都进行列举。

【命令】

iblinkinfo

【举例】

 

【信息说明】

①     表示这台交换机的GUID号,唯一区分交换机的标识。

②     LID号,集群创建时SM分配的唯一便于管理的lid号。

③     表示1-20号口为IB交换模块与网卡连接的内部端口,其中11-12、17-18为预留口。

④     表示21-40为IB交换模块外部连接口。

⑤     表示41号口为虚拟机口,为集群跑压力的自由路由端口。

⑥     表示当前端口的连接速率:4X*25.78125=100Gpbs(EDR)。

⑦     表示网卡端口的lid号及所对应的服务器。

⑧     表示IB交换模块外部连接口的lid号、端口序列号、对端连接设备的名称。

4.2  IB交换模块和IB网卡设备信息查询

本命令用于对当前集群下的设备进行管理使用,查询网卡或者IB交换模块的基本信息,详细介绍请参见3.10  IB交换模块和IB网卡设备信息查询。

4.3  IB交换模块和IB网卡固件升级

本命令用于IB网卡和IB交换模块的固件升级,详细介绍请参见3.11  IB交换模块和IB网卡固件升级。

4.4  查看集群下各IB交换模块对应的设备

本命令用于查看集群内IB交换模块设备的情况。

【命令】

ibnetdiscover

【举例】

 

【信息说明】

①     表示交换机的GUID号,用于区别集群中的IB交换模块。

②     表示与当前交换机连接的设备信息及连接端口。

4.5  查看在位IB交换模块

本命令用于查看当前集群的IB交换模块,此命令会将集群中所有的设备一一列举。

【命令】

ibswitches

【举例】

 

【信息说明】

显示当前IB交换模块的总端口数量以及集群下lid号。

4.6  设置IB交换模块端口up/down

本命令用于将IB交换模块端口up/down/reset。

【命令】

ibportstate   

【参数说明】

:表示端口所在设备的LID号。

:端口号。

:包括enable、disable等状态,enable表示端口UP,disable表示端口DOWN。

详细参数可以输入ibportstate --help进行参考。

【举例】

·     查看LID为1的设备的33号端口状态。

 

·     设置LID为1的设备的33号端口状态为Down。

 

·     设置LID为1的设备的33号端口状态为UP。

 

4.7  检查当前环境下光纤物理链路的健康情况

本命令用于检测当前集群下物理链路的健康情况,利用快速查看环境下链路状态。

执行此命令之后log信息都在/var/tmp/ibdiagnet2/目录下。

【命令】

ibdiagnet

【参数说明】

详细参数可以输入ibdiagnet --help进行参考。

【举列】

 

4.8  IB交换模块日志收集

本命令用于收集IB交换模块端口日志信息。

【命令】

mlxdump -d  snapshot --mode full -o 

【参数说明】

:表示IB交换模块和IB网卡名称,该名称可以通过mst status –v命令查询。

:表示日志文件的名称,如Quantum_mlxdump1.log。

详细参数可以输入flint --help进行参考。

【举例】

 

  5 常见问题处理 5.1  IB网卡常见问题 5.1.1  IB网卡端口不可见

诊断步骤:

(1)     排查IB卡与服务器的兼容性

·     如果使用非标准系统,请联系具体OS研发解决。

·     如果IB卡版本不配套,请先升级。

(2)     排查PCIe硬件设备是否可以见(lspci |grep Mellanox)

·     如果PCIe设备不可见,看相应CPU是否在位;IB网卡是否未安装到位;更换IB网卡的槽位

·     如果PCIe设备可见,但是网口不可见,可使用ifconfig –a /ifconfig ibN up,然后重新安装驱动,重启系统。

5.1.2  IB网口不通或端口为初始化状态

诊断步骤:

(1)     排查IB网卡是否up,且状态为link。

·     如果是,查看IP是否设置正确网口上,相关命令:ifconfig ibN up,ibstat。

·     如果否,建议检查集群中的opensm功能是否开启,相关命令:/etc/init.d/opensm start , /etc/init.d/opensm status。

(2)     重新对IB网卡更换槽位,检查是否正常。

(3)     查看与当前网卡连接的IB交换模块是否在位可用。

5.1.3  IB网卡端口速率协商异常

诊断步骤:

(1)     排查当前IB网卡是否可以支持当前所需要协商的速率。

·     如果否,请更换支持的IB Mezz网卡。

·     如果是,排查端口是否被协商降速,具体命令参考:3.12  端口速率及状态查询

(2)     更换当前的网卡槽位,检查是否正常。

5.1.4  IB网卡查询系统中组网设备的相关命令执行失败,如ibv_devinfo 执行报错,failed to get IB deviceslist。

该IB命令在驱动还未加载的情况下被调用,执行命令:/etc/init.d/openibd start。

5.2  IB交换模块常见问题

表5-1 IB交换模块常见故障诊断方法

故障种类

故障现象

故障原因及处理方法

LEDs

面板端口指示灯为琥珀色常亮

这个状态标明端口仅物理层UP:

确认SM已经运行在当前网络中:/etc/init.d/opensm status;

将当前线缆进行更换,确认非线缆问题。

面板端口指示灯闪烁(琥珀色)

这个状态可能说明线缆有问题:

将当前的线缆进行更换,确认非线缆问题;

更换面板其他端口,确认非端口问题。

IB交换模块指示灯闪红色

这个状态说明交换机有告警信息:

确认风扇正常使用,未导致IB交换模块温度过高;

IB交换模块系统指示灯长灭

这个状态说明可能IB交换模块未正常上电:

确认OM电源正常使用,且可正常给IB交换模块上电;

确认IB交换模块固件版本正确,GUID设备号正确烧录。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3